package com.ruicar.afs.cloud.apply.admin.manage.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruicar.afs.cloud.common.modules.apply.enums.CarTypeEnum;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * @author: Lee
 * @date: 2020/5/11 19:39
 * @description: 渠道授权区域
 */
@Data
@Accessors(chain = true)
@TableName(value = "sys_channel_auth_region", autoResultMap = true)
public class SysChannelAuthRegion implements Unique<SysChannelAuthRegion> {
    /**
     * 渠道ID/家访公司ID;渠道授权，存渠道编号 家访公司授权，存家访公司id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long channelId;
    /**
     * 业务类型;newCar：新车 oldCar：二手车 家访公司目前不区分新车二手车，家访公司区域授权，此字段可以为空
     */
    private CarTypeEnum businessType;
    /**
     * 区域名称
     */
    private String title;
    /**
     * 区域code
     */
    private String code;
    /**
     * 父id
     */
    private String parentId;
    /**
     * 是否是父节点
     */
    private Boolean isParent;

    @Override
    public Wrapper<SysChannelAuthRegion> uniqueWrapper() {
        UpdateWrapper<SysChannelAuthRegion> updateWrapper = new UpdateWrapper<>();
        updateWrapper.lambda().eq(SysChannelAuthRegion::getCode, this.code);
        updateWrapper.lambda().eq(SysChannelAuthRegion::getBusinessType, this.businessType);
        updateWrapper.lambda().eq(SysChannelAuthRegion::getChannelId, this.channelId);
        return updateWrapper;
    }
}
